package cn.iocoder.yudao.module.crm.api.clue;

import cn.iocoder.yudao.module.crm.api.clue.dto.CrmClueDTO;
import cn.iocoder.yudao.module.crm.api.clue.dto.CrmClueSaveDTO;
import cn.iocoder.yudao.module.crm.api.level.dto.CrmLevelConfigDTO;

import java.util.List;
import java.util.Map;

public interface CrmClueApi {


    /**
     * 获取线索对象
     * @param clueId
     * @since 2024-09-14
     * @author PetePower
     * @return
     */
    CrmClueDTO getClueByClueId(Long clueId);

    /**
     * 从话单创建的线索记录
     * @param tenantId
     * @param moduleId
     * @param ownerUserId
     * @param mobile
     * @since 2024-12-16
     * @author PetePower
     * @return
     */
    Long createClueByCallRecord(Long tenantId, Long moduleId, Long ownerUserId, String mobile, String reqNo);

    /**
     * Ai摘要通话记录创建的线索
     * @param tenantId
     * @param moduleId
     * @param ownerUserId
     * @param mobile
     * @param reqNo
     * @param aiSummary
     * @param lastAiSummaryLogId
     * @since 2024-12-17
     * @author PetePower
     * @return
     */
    Long createClueByCallAiSummary(Long tenantId, Long moduleId, Long ownerUserId, String mobile, String reqNo, String aiSummary, Long lastAiSummaryLogId);

    /**
     * 创建新线索
     * @param saveDTO
     * @return
     */
    Long createClue(CrmClueSaveDTO saveDTO);

    /**
     * 更新线索最后的ai摘要结果
     * @param clueId
     * @param aiSummary
     * @param lastAiSummaryLogId
     * @since 2024-12-17
     * @author PetePower
     * @return
     */
    void updateClueByCallAiSummary(Long clueId, String aiSummary, Long lastAiSummaryLogId);

    /**
     * 根据模块获取要分配的负责人
     * @param moduleId
     * @return
     */
    Long getRobotDistributeUser(Long moduleId);
}
